<?php
class PessoaFisicaDAO{
	
	private static  $instanciaUnica;
	private $conexao;

	private function __construct(){
		$this->conexao = Conexao::getConexao();
	}

	public static function getInstancia(){
		if (!isset(self::$instanciaUnica))
		self::$instanciaUnica = new PessoaFisicaDAO();
		return self::$instanciaUnica;
	}

	public function listaPf(){
		$lista	=	Array();
		$rs		=	new QueryMySql();
		$rs->setQuery("Select * From tbl_pessoafisica");
		while ($rs->getrow()){
			$pf = new PessoaFisica();
			$pf->setCodPf($rs->field("codPf"));
			$pf->setCpf($rs->field("cpf"));
			$pf->setCodPessoa($rs->field("codPessoa"));
			$lista[] = $pf;
		}
		return $lista;
	}

	public function insertPf(PessoaFisica $pf){
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_pessoafisica");
		$sql->addField("cpf", $pf->getCpf(),"String");
		$sql->addField("codPessoa", $pf->getCodPessoa(),"Number");
		$sql->setAction("INSERT");
		return $this->conexao->execute($sql->getSQL());
	}

	public function updatePf(PessoaFisica $pf){
		//$instituicao = new Instituicao();
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_pessoafisica");
		$sql->setKey("codPf", $pf->getCodPf(), "Number");
		$sql->addField("cpf", $pf->getCpf(), "String");
		$sql->addField("codPessoa", $pf->getCodPessoa(), "Number");
		$sql->setAction("UPDATE");
		return $this->conexao->execute($sql->getSQL());
	}

	public function deletePf(PessoaFisica $pf){
		//$instituicao = new Instituicao();
		$sql = new UpdateSQL();
		$sql->setTable("tbl_pessoafisica");
		$sql->setKey("codPf", $pf->getCodPf(), "Number");
		$sql->setAction("DELETE");
		return $this->conexao->executeUpdate($sql->getSQL());
	}
}
?>